package com.cius.util;

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

/**
 * Created by CiusCheung on 16/9/18.
 */
public class GenericsUtils {

    /**
     * 获取泛型的类型
     * @param clazz
     * @return class
     */
    public static Class getGenericType(Class clazz){
        Type genType = clazz.getGenericSuperclass();//得到泛型父类
        Type[] types = ((ParameterizedType)genType).getActualTypeArguments();
        if(!(types[0] instanceof Class)){
            return Object.class;
        }
        return (Class)types[0];
    }

    /**
     * 获取对象的名称
     * @param clazz
     * @return 类名称
     */
    public static String getGenericName(Class clazz){
        return clazz.getSimpleName();
    }
}
